package com.yqh.Collection.List;

import java.util.ArrayList;
import java.util.List;

/**
 * List 集合的特有方法
 * @author 阳秋豪
 * @createTime 2024/3/6
 */
public class Test1 {
    /**
     * 打印集合
     *
     * @param list 需要打印的集合
     */
    private static void printList(List<?> list) {
        System.out.println("-----------------------------------");
        System.out.println("原List集合 -- " + list);
    }

    public static void main(String[] args) {
        /*----------------------- List 集合特有方法 -----------------------*/
        List<String> list = new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        printList(list); // 原List集合 -- [张三, 李四, 王五]

        // 1、void add(int index, E element);
        // 描述 -- 将指定元素放到 List 集合的指定位置
        list.add(1, "乱入");
        System.out.println("在索引1处添加元素后 -- " + list); // 在索引1处添加元素后 -- [张三, 乱入, 李四, 王五]
        printList(list); // 原List集合 -- [张三, 乱入, 李四, 王五]

        // 2、E remove(int index);
        // 描述 -- 移除列表中指定位置的元素，后续元素前移（索引值-1），返回值为删除的元素
        System.out.println("删除的索引2元素 -- " + list.remove(2)); // 删除的索引2元素 -- 李四
        System.out.println("删除后的List集合 -- " + list); // 删除后的List集合 -- [张三, 乱入, 王五]
        printList(list); // 原List集合 -- [张三, 乱入, 王五]

        // 3、E get(int index);
        // 描述 -- 返回列表中指定位置的元素
        System.out.println("索引2处的元素 -- " + list.get(2)); // 索引2处的元素 -- 王五
        printList(list);

        // 4、E set(int index, E element);
        // 描述 -- 将指定位置的元素替换成要修改的元素，返回值为指定位置元素（修改前）
        System.out.println("索引1位置修改前的元素 -- " + list.set(1, "李四")); // 索引1位置修改前的元素 -- 乱入
        System.out.println("修改后的list集合" + list); // 修改后的list集合[张三, 李四, 王五]
    }

}
